1. Field of the Invention
The present invention relates to an ignition control system of an internal combustion engine. More specifically, the present invention relates to an ignition control system of an internal combustion engine adapted for predictive evaluation of ignition timing by the use of a microcomputer.
2. Description of the Prior Art
An ignition control system employing a microcomputer capable of adjusting ignition timing with ease and accuracy has been recently put into practical use as an ignition control system of an internal combustion engine such as a gasoline engine and the like. An example of such a system is disclosed in U.S. Pat. No. 4,157,699 issued June 12, 1979 to Yasunori Mori. The example relates to an improvement in an electronic spark timing advancing apparatus. The above described United States patent is incorporated herein by reference thereto. Nevertheless, for facility of understanding of the background of the invention, an example of a conventional ignition control system will be described in the following to the extent necessary for such purposes. For simplicity of description, a description will be made in the following of an ignition control system of a 4-stroke cycle engine with four cylinders by way of an example of an internal combustion engine; however, it is pointed out that the same be applied to other types of engines.
FIG. 1 is a block diagram showing an outline of a conventional ignition control system employing a microcomputer. Briefly described, the ignition control system shown comprises spark plugs, a spark plug driving means, a rotational angle position signal generating means, and an ignition enabling signal generating means.
The rotational angle position signal generating means comprises a disc 1 and position sensors 2 and 3 provided associated with the disc 1. The disc 1 is coupled to a crank shaft of an internal combustion engine, not shown. The disc 1 is provided with detectable members 4 and 5 provided on the periphery thereof spaced apart from each other by 180.degree., i.e. at directly opposite positions on the periphery. The position sensors 2 and 3 are provided in the vicinity of the periphery of the disc 1 and spaced apart from each other by 90.degree.. The position sensors 2 and 3 serve to detect the positions of the detectable members 4 and 5 and may comprise proximity switches of an oscillator type including an oscillator, for example. In the case where the position sensors 2 and 3 are proximity switches of an oscillator type, the detectable members 4 and 5 may each comprise a protrusion of metal such as an iron piece. The disc 1 is rotated in the arrow direction in syncrhonism with the rotation of the engine at the same rotational speed as that of the engine. As a result, a pulse signal P.sub.1 is obtained from the position sensor 2 and a pulse signal P.sub.2 is obtained from the position sensor 3. In this case, each of the pulse signals P.sub.1 and P.sub.2 is obtained four times per two rotations of the disc 1. Meanwhile, the position of each of the detectable members 4 and 5 on the disc 1 has been determined to provide the pulse signal P.sub.2 some degrees (say 10.degree.) before the top dead center in terms of the rotational angle of the crank shaft. The purpose of doing so is to ignite slightly before the top dead center to correct the combustion timing of a fuel in a cylinder of the engine and such ignition is referred to as an advanced ignition. The details of the same will be described subsequently. The pulse signal P.sub.1 is provided 90.degree. before the pulse signal P.sub.2 in terms of the rotational angle of the crank shaft.
The ignition enabling signal generating means comprises a clock signal generator 6, an OR gate 7, a counter 8, a latch circuit 9, a microcomputer 10, registers 11 and 12 and digital comparators 13 and 14. The output of the clock signal generator 6 is connected to the input of the counter 8 and to the input of the microcomputer 10. The inputs of the OR gate 7 are connected to receive outputs from the position sensors 2 and 3 and the output of the OR gate is connected to the input of the latch circuit 9. The output of the counter 8 is connected to the input of the latch circuit 9 and to the inputs of the comparator 13 and the comparator 14. The output of the latch circuit 9 is connected to the input of the microcomputer 10. The input of the microcomputer is also connected to receive the outputs from the position sensors 2 and 3. The output of the microcomputer 10 is connected to the inputs to the registers 11 and 12. The output of the register 11 is connected to the input of the comparator 13. The output of the register 12 is connected to the input of the comparator 14.
The clock signal generator 6 generates a clock pulse signal of a predetermined frequency. The OR gate 7 evaluates a logical sum of the pulse signals P.sub.1 and P.sub.2 and provides a logical sum signal. The counter 8 counts the number of clock pulse signals CL obtained from the clock signal generator 6 and provides a count value. The latch circuit 9 is triggered responsive to the logical sum signal obtained from the OR gate 7 to latch the count value of the counter 8 at that time. The count value latched by the latch circuit 9 is provided to the microcomputer 10.
FIG. 2 is a block diagram showing an outline of the micrcomputer. The microcomputer 10 comprises a central processing unit 101, a read only memory 102, a random access memory 103 and a data bus DB coupled thereto. The microcomputer 10 receives the pulse signal P.sub.1 from the position sensor 2, the pulse signal P.sub.2 from the position sensor 3 and the count value from the latch circuit 9 and performs various operations such as an arithmetic operation, storage, outputting of the data and the like in synchronism with the clock pulse signal CL from the clock signal generator 6. The details of the operation of the microcomputer 10 will be described subsequently with reference to FIGS. 3 and 4.
The registers 11 and 12 hold the count value obtained from the microcomputer 10 and the count value is provided to the comparators 13 and 14. The comparator 13 compares the count value obtained from the counter 8 and the count value obtained from the register 11 to provide a pulse signal S upon coincidence of both. Similarly, the comparator 4 compares the count value obtained from the counter 8 and the count value obtained from the register 12 to provide a pulse signal R upon coincidence of both.
The spark plug driving means comprises an R-S flip-flop 15, transistors 16 and 18, a resistor 17, an ignition coil 19, a distributor 20 and a battery 22. The set input terminal of the R-S flip-flop 15 is connected to the ouput of the comparator 13 and the reset input terminal of the same is connected to the output of the comparator 14. The output terminal of the R-S flip-flop 15 is connected to the base of the transistor 16. The emitter of the transistor 16 is connected to the ground. The collector of the transistor 16 is connected to the base of the transistor 18 and one terminal of the resistor 17. The other terminal of the resistor 17 is connected to the positive terminal of the battery 22 and the negative terminal of the battery 22 is connected to ground. The emitter of the transistor 18 is also connected to ground. The collector of the transistor 18 is connected through a primary winding 191 of the ignition coil 19 to the positive terminal of the battery 22. The secondary winding 192 of the ignition coil 19 is connected to a rotational terminal of the distributor 20. The distributor 20 comprises four fixed terminals, each of which is connected to one terminal of each of spark plugs 21a to 21d, respectively. The other terminal of each of the spark plugs 21a to 21d is connected to the ground.
The R-S flip-flop 15 is set by the pulse signal S obtained from the comparator 13 and is reset by the pulse signal R obtained from the comparator 14. The inverted output signal Q obtained from the R-S flip-flop 15 assumes the low level when the same is set and assumes the high level when the same is reset. When the output signal Q of the R-S flip-flop 15 assumes the low level, the transistor 16 is brought to an off-state, whereby the transistor 18 is brought to an on-state, with the result that a current I is caused to flow through the primary winding 191 of the ignition coil 19. Conversely, when the output signal Q of the R-S flip-flop 15 assumes the high level, the transistor 16 is brought to an on-state, whereby the transistor 18 is brought to an off-state, with the result that the current flowing through the primary winding 191 of the ignition coil 19 is interrupted and as a result a high voltage is generated across the secondary winding 192 of the ignition coil 19. The rotational terminal of the distributor 20 is rotated in synchronism with the rotation of the engine at a half of the rotational speed of the engine. As the rotational terminals are rotated, the high voltage generated across the secondary winding of the ignition coil 19 is distributed to the spark plugs 21a to 21d, whereby sparks are generated at the spark plugs 21a to 21d. As the engine is rotated twice, the high voltage generated across the secondary winding of the ignition coil 19 is distributed one time to each of the spark plugs 21a to 21d.
Now referring to FIGS. 3 and 4B, a description will be made of an operation at the beginning after the engine is started until the rotational speed thereof reaches a predetermined value called an idling rotational speed (say 600 rpm). During the start period of the engine, since the fluctuation of the rotational speed of the engine is large, predictive evaluation for evaluating the ignition timing of the next time point based on the rotational speed at a given time point of the engine is not carried out. More specifically, at substantially the same time as the output of the pulse signal P.sub.1 conduction of the current I flowing through the primary winding 191 of the ignition coil 19 is started and the current I is interrupted at substantially the same time as the output of the pulse signal P.sub.2. FIG. 3 is a graph showing an operation of the ignition control system during the start period of operation of the engine. FIG. 4A is a flow diagram depicting an operation of the microcomputer.
Referring to FIG. 3, P.sub.1 and P.sub.2 denote the pulse signals obtained from the position sensors 2 and 3, respectively. The count value diagrammatically shows a change of the count value in the counter 8 as a straight line. S denotes the pulse signal obtained from the comparator 13 and R denotes the pulse signal obtained from the comparator 14. Q denotes the inverted output signal obtained from the R-S flip-flop 15. I denotes a coil current flowing through the primary winding 191 of the ignition coil 19. When the engine is started, the disc 1 is accordingly rotated and the pulse signals P.sub.1 and P.sub.2 are obtained from the position sensors 2 and 3, respectively. The pulse signals P.sub.1 and P.sub.2 are applied through the OR gate 7 to the latch circuit 9 and the count value in the counter 8 at that time is latched by the latch circuit 9. On the other hand, the pulse signals P.sub.1 and P.sub.2 are also applied to the microcomputer 10 and the microcomputer 10 is responsive to these inputs to read out the count value held in the latch circuit 9 and to detect the input timing of the pulse signals P.sub.1 and P.sub.2 in terms of the count values. For example, the count values at the input timings of the pulse signals P.sub.11 and P.sub.12 are count values C.sub.P11 and C.sub.P12, respectively, and the count values at the input timings of the pulse signals P.sub.21 and P.sub.22 are the count values C.sub.P21 and C.sub.P22, respectively.
Now a description will be made of a case where the coil current I starts to flow through the ignition coil 19. Referring to FIG. 4A, at the step S1 the time period T.sub.11 between the pulse signals P.sub.11 and P.sub.12 is evaluated based on the count values C.sub.P11 and C.sub.P12 at the input timing of the pulse signal P.sub.12. At the step S2, the rotational speed N of the engine at the input timing of the pulse signal P.sub.12 is evaluated based on the above described time period T.sub.11 in accordance with the following equation: ##EQU1## where K is a constant.
At the step S3 the rotational speed is compared with the above described idling rotational speed of 600 rpm. Since it is during the start period in this case, the program proceeds to the step S4. At the step S4, a predetermined small count value C.sub.K is added to the count value C.sub.P12 at the output of the pulse signal C.sub.P12. The count value C.sub.K corresponds to the time required for operation of the microcomputer 10, the register 11 and the comparator 13.
At the step S5, the above described count value C.sub.S1 is transferred to the register 11. Returning to FIG. 3, the count value C.sub.S1 thus determined as described in the foregoing is shown in the figure. The count value C.sub.P12 assumed in the counter 8 at the input timing of the pulse signal P.sub.12 becomes the count value C.sub.S1 immediately. Accordingly, coincidence of the count value obtained from the counter 8 and the count value obtained from the register 11 is detected by means of the comparator 13 and as a result the pulse signal S is obtained from the comparator 13. The output signal Q of the R-S flip-flop 15 changes to the low level responsive to the output of the pulse signal S and as a result a flow of the coil current I through the ignition coil 19 is started. As described above, the current I starts to flow through the ignition coil 19 at substantially the same time as the output of the pulse signal P.sub.1.
Now a description will be made of a case where the coil current I flowing through the ignition coil is to be interrupted, i.e. the case where the spark plug is to spark. The same processing as shown in conjunction with FIG. 4A is carried out when the engine further rotates to provide the pulse signal P.sub.22. A count value C.sub.R1, obtained similarly to the above described count value C.sub.S1, is transferred to the register 12. Referring to FIG. 3, the count value C.sub.P22 assumed by the counter 8 at the input timing of the pulse signal P.sub.22 becomes the count value C.sub.R1 immediately. Accordingly, coincidence of the count value obtained from the counter 8 and the count value obtained from the register 12 is detected by means of the comparator 14 and the pulse signal R is obtained from the comparator 14. The output signal Q of the R-S flip-flop 15 changes to the high level as described above responsive to the output of the pulse signal R and the coil current I of the ignition coil 19 is interrupted, whereby the spark plug generates a spark. As described above, the spark plug is ignited at substantially the same time as the output of the pulse signal P.sub.2.
Meanwhile, the above described count value C.sub.K for correction of delay of the operation time is not substantial and therefore the same is neglected in the following description for simplicity. It is pointed out that no inconvenience is caused in the following description by such neglection.
Now referring to FIGS. 4 to 6, a description will be made of an operation in the case where the engine is in an intermediate speed rotation (say 1500 rpm) after the start of the engine is completed, by focusing on the difference from the operation at the start as described previously. The predictive evaluation of the ignition timing is performed after the start of the engine. FIG. 4B is a flow diagram depicting an operation for a predictive arithmetic operation of a conduction start timing of the ignition coil current by means of the microcomputer. FIG. 5 is a table showing the data of the advanced angle stored in the read only memory. FIG. 6 is a graph showing an operation of the ignition control system while the engine is operating at an intermediate speed of rotation.
Now a description will be made of a case where the coil current I begins to flow through the ignition coil 19. Referring to FIG. 4A, as described previously, at the step S1 the time period T.sub.22 between the pulse signals P.sub.24 and P.sub.25 is evaluated based on the count values C.sub.P24 and C.sub.P25 at the input timing of the pulse signal P.sub.25. At the step S2, the rotational speed N of the engine at the input timing of the pulse signal P.sub.25 is evaluated based on the above described time period T.sub.22 in accordance with the following equation: ##EQU2## where K is a constant.
At the step S3, the rotational speed N is compared with the idling rotational speed 600 rpm. Since the situation is after the start of the engine, the program proceeds to the step S6 in the FIG. 4B.
At the step S6, the advanced angle .theta. corresponding to the rotational speed of the engine at that time is obtained by indexing the table of the advanced angle data stored in the read only memory 102 (see FIG. 5). The advanced angle .theta. shown in FIG. 5 shows an advanced angle from the output timing of the pulse signal P.sub.2 and the relation with the advanced angle from the top dead center in the embodiment shown is expressed as follows: EQU .alpha.=.theta.+10 (3)
It is well known that generally described the more the rotational speed of the engine is increased the larger the advanced angle should be. Since the rotational speed of the engine is 1500 rpm in the above described case, the advanced angle .theta. thus obtained is 10.degree.. At the step S7 the above described advanced angle .theta. is converted into a time period T.sub..theta. corresponding to the rotational speed at that time. At the step S8, the conduction start timing point of the coil current I is evaluated as the lapse period t.sub.S2 from the output timing point of the pulse signal P.sub.25 in accordance with the following equation: ##EQU3##
At the step S9, the count value C.sub.S2 at the timing point after the lapse of a time period t.sub.S2 from the output timing point of the pulse signal P.sub.25 is evaluated in accordance with the following equation: EQU C.sub.S2 =C.sub.P25 +[t.sub.S2 ] (5)
where [t.sub.S2 ] is a count value corresponding to the time period t.sub.S2.
At the step S10, the above described count value C.sub.S2 is transferred to the register 11. Returning to FIG. 6, the time period t.sub.S2 and the count value C.sub.S2 thus determined as described in the foregoing are shown in the figure. The count value C.sub.P25 assumed in the counter 8 at the input timing of the pulse signal P.sub.25 becomes the count value C.sub.S2 after the lapse of a given time period. Accordingly, coincidence of the count value obtained from the counter 8 and the count value obtained from the register 11 is detected by means of the comparator 13 and as a result the pulse signal S is obtained from the comparator 13. The output signal Q of the R-S flip-flop 15 changes to the low level responsive to the output of the pulse signal S and as a result a flow of the coil current I through the ignition coil 19 is started.
Now a description will be made of a case where the coil current I flowing through the ignition coil is to be interrupted, i.e. the case where the spark plug is to spark. The same processing as shown in conjunction with FIG. 4A and FIG. 4B at the input timing of the pulse signal P.sub.15 is carried out. More specifically, the time period T.sub.12 between the pulse signals P.sub.14 and P.sub.15 is evaluated based on the count values C.sub.P14 and C.sub.P15 and the rotational speed N of the engine is evaluated based on the time period T.sub.11. The advanced angle .theta. is obtained by indexing the table based on the rotational speed N and the advanced angle .theta. is then converted into the time period T.sub..theta.. The time period t.sub.R2 is then evaluated based on the time period T.sub..theta. in accordance with the following equation: ##EQU4##
The count value C.sub.R2 at the timing after the lapse of time by the time period t.sub.R2 from the output timing of the pulse signal P.sub.15 is evaluated in accordance with the following equation: EQU C.sub.R2 =C.sub.P15 +[t.sub.R2 ] (7)
where [t.sub.R2 ] is a count value corresponding to the time period t.sub.R2.
The above described count value C.sub.R2 is transferred to the register 12. The time period t.sub.R2 and the count value C.sub.R2 determined in the above described manner are shown in FIG. 6. The count value C.sub.P15 assumed by the counter 8 at the input timing of the pulse signal P.sub.15 becomes the count value C.sub.R2 after the lapse of a given time period. Accordingly, coincidence of the count value obtained from the counter 8 and the count value obtained from the register 12 is detected by means of the comparator 14 and the pulse signal R is obtained from the comparator 14. The output signal Q of the R-S flip-flop 15 attains the high level as described above responsive to the output of the pulse signal R and the coil current I of the ignition coil 19 is interrupted, whereby the spark plug sparks. In such case, unless there is an abrupt change of the rotational speed of the engine, since it is predicted that the pulse signal P.sub.26 is obtained at the timing point after the lapse of the time period T.sub.22 from the output timing point of the pulse signal P.sub.25, the spark plug sparks at the timing point advanced by .theta. in terms of the advanced angle and by T.sub..theta. in terms of the time period with respect to the output of the pulse signal P.sub.26.
As seen from the foregoing description, according to the FIG. 1 ignition control system, predictive arithmetic operation has been made of the conduction start timing and the interruption timing of the subsequent coil current based on the data immediately before the signal is applied, at the input timing of the pulse signals P.sub.1 and P.sub.2 on the presumption that there is no abrupt change of the rotational speed of the engine. Accordingly, if and when there is an abrupt change of the rotation number of the engine, it follows that the ignition timing largely deviates from the normal ignition timing and as a result abnormally advanced ignition or abnormally delayed ignition occurs. Such abrupt change of the rotational speed of the engine would be caused by acceleration with the slots fully opened on the occasion of no load, an abrupt disconnection of the load and the like. This will be further described with reference to FIG. 7. FIG. 7 is a graph depicting an operation of the ignition control system in the case where the rotational speed of the engine is abruptly changed on the occasion of intermediate speed rotation of the engine.
As described previously, the time period t.sub.S2 determining the conduction start timing of the next coil current I is evaluated based on the time period T.sub.22 and the time period T.sub.R2 determing the interruption timing point of the next coil current I is evaluated based on the time period T.sub.12. In the case where there is no abrupt change of the rotational speed of the engine, the pulse signal P.sub.16 and P.sub.26 are obtained at the next timing points and, as described previously, normal advanced ignition is performed. However, assuming that the rotational speed of the engine is abruptly increased, the pulse signals P.sub.16 ' and P.sub.26 ' are obtained in place of and before the pulse signals P.sub.16 and P.sub.26. However, since the interruption timing point obtained as a result of predictive evaluation remains as original, the coil current I is interrupted at the timing point as delayed by the time period T.sub..theta. ', with respect to the output timing of the pulse signal P.sub.26 ', with the result that an abnormally retarded ignition occurs. Conversely, if and when the rotational speed of the engine is abruptly decreased, the pulse signals P.sub.16 " and P.sub.26 " are obtained in place of and after the pulse signals P.sub.16 and P.sub.26. Therefore, the coil current I is interrupted at the timing advanced by the time period T.sub..theta. " with respect to the output timing point of the pulse signal P.sub.26 " and abnormally advanced angle ignition occurs.
When such abnormally advanced ignition or abnormally delayed ignition occurs, an abnormal state such as reverse rotation, knocking, or other bad conditions of the engine, is caused by ignition at abnormal timing or the like of the engine and occasionally the engine could be damaged or destroyed. Apart from the above described case where abnormality is caused by an abrupt change of the rotational speed of the engine, such abnormal ignition (i.e. ignition at abnormal timing) as described above could be caused even in the case where control of the ignition timing is disabled by a temporary abnormality of a microcomputer (such as lost control or runaway in the software) that could happen by chance due to external noise and the like, an instantaneous interruption of the source voltage that could happen due to loose contact of the battery terminals, and the like.
For the purpose of preventing abnormal ignition due to abrupt change of the rotational speed of the engine, an approach could be thought of wherein a trend of the change of the rotational speed of the engine is predicted based on several intervals of the pulse signals P.sub.1 or P.sub.2, thereby to make predicted arithmetic operation of the following ignition timing, rather than making predicted arithmetic operation of the next ignition timing based on one interval of the pulse signal P.sub.1 or P.sub.2, as described previously. However according to such approach, the storage capacity of the microcomputer, the number of steps of arithmetic operations and the like are increased and as a result a microcomputer of intermediate speed and large capacity is required, resulting in lessened economy. Furthermore, only the input data of a limited number can be obtained at the beginning of an abrupt accelerating state and the like and therefore, in such transient time period, it is extremely difficult to prevent abnormal ignition. Furthermore, according to such approach, abnormal ignition due to general abnormalities of a microcomputer and the like can not be prevented.
Thus, it has been desired that an ignition control system is provided that is capable of preventing abnormal ignition with certainty without increasing the storage capacity and the number of steps of arithmetic operations of a microcomputer.